package com.guoqi.myclientdemo

import android.os.Parcel
import android.os.Parcelable

class Good() : Parcelable {

    var name: String = ""
    var price: Double = 0.0

    constructor(parcel: Parcel) : this() {
        name = parcel.readString()
        price = parcel.readDouble()
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(name)
        parcel.writeDouble(price)
    }

    /**
     * 如果实体中写了 `out`或者 `inout` 则生成的aidl文件需要这个方法
     */
    fun readFromParcel(parcel: Parcel) {
        //注意，此处的读值顺序应当是和writeToParcel()方法中一致的
        name = parcel.readString()
        price = parcel.readDouble()
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<Good> {
        override fun createFromParcel(parcel: Parcel): Good {
            return Good(parcel)
        }

        override fun newArray(size: Int): Array<Good?> {
            return arrayOfNulls(size)
        }
    }

    override fun toString(): String {
        return "[Good] name : $name , price : $price"
    }
}